#coding=utf-8
import wx
import os

class myframe(wx.Frame):
    def __init__(self,parent,title):
        wx.Frame.__init__(self,parent,title=title,size=(800,400)) #页面大小

        self.text=wx.TextCtrl(self,style=wx.TE_MULTILINE,size=(10,20)) #创建文本

    def Menu_bar(self):
        File_Menu=wx.Menu()       #创建菜单
        Menu_New=File_Menu.Append(wx.ID_NEW, "新建")
        Menu_Open=File_Menu.Append(wx.ID_OPEN, "打开")
        Menu_Save=File_Menu.Append(wx.ID_SAVE, "保存")
        Menu_Save_as=File_Menu.Append(wx.ID_SAVEAS, "另存为")
        Menu_Quit=File_Menu.Append(wx.ID_CLOSE, "退出")
           

        other_Menu=wx.Menu()
        Menu_Help=other_Menu.Append(wx.ID_HELP,"帮助")

        Menubar=wx.MenuBar()
        #创建文件菜单栏
        Menubar.Append(File_Menu,"文件")
        #创建其他菜单栏
        Menubar.Append(other_Menu,"其他")
        self.SetMenuBar(Menubar) #设置菜单栏

        #文件的所有事件
        self.Bind(wx.EVT_MENU,self.File_New,Menu_New) #新建事件
        self.Bind(wx.EVT_MENU,self.File_Open,Menu_Open) #打开事件
        self.Bind(wx.EVT_MENU,self.File_Save,Menu_Save) #保存事件
        self.Bind(wx.EVT_MENU,self.File_Save_as,Menu_Save_as) #另存为事件
        self.Bind(wx.EVT_MENU,self.File_Quit,Menu_Quit) #另存为事件

        #其他的所有事件
        self.Bind(wx.EVT_MENU,self.Help,Menu_Help) #帮助事件


############################## --------- 以下是文件的所有操作 --------- #######################################################
    def File_New(self,e): #新建
        self.File_Path=os.getcwd()               #获取当前路径
        self.filename=os.path.basename(__file__) #获取当前文件名
        self.Directory=os.getcwd()               #获取当前目录
        if self.text.IsEmpty()==False: #判断文本是否为空
            dlg = wx.TextEntryDialog(None, u"是否保存 输入文件名:", u"我没有装逼 相信我 我是真的牛逼.jpg") #文本对话框
            if dlg.ShowModal() == wx.ID_OK:
                self.message = dlg.GetValue() #获取文本框中输入的值
                dlg_tip = wx.MessageDialog(None, u"你保存的文件名为："+self.message+u".txt"+u"\n"+u"路径为"+self.Directory+"\n"+u"是否保存", u"我没有装逼 相信我 我是真的牛逼.jpg", wx.OK|wx.CANCEL|wx.ICON_INFORMATION) #对话框
                if dlg_tip.ShowModal() == wx.ID_OK:
                    file_save=open(self.message+u".txt", 'w')
                    file_save.write(self.text.GetValue()) #获取文本所有内容
                    self.text.Clear() #清除文本内容
                    file_save.close() #关闭文件
                    dlg_tip.Destroy() #销毁dlg_tip
                    dlg.Destroy() #销毁dlg
                else:
                    self.text.Clear() #清除文本内容
                    dlg_tip.Destroy() #销毁dlg_tip
                    dlg.Destroy() #销毁dlg

    def File_Open(self,e): #打开文件
        dlg = wx.FileDialog(None, "我没有装逼 相信我 我是真的牛逼.jpg ",style = wx.FD_OPEN) #具体操作看官网https://www.wxpython.org/docs/api/wx.FileDialog-class.html 

        if dlg.ShowModal() == wx.ID_OK:
            file = open(dlg.GetPath()) #打开文件
            self.text.SetValue(file.read()) #打开的文件输出到文本框
            file.close() #关闭文件
        dlg.Destroy() #销毁dlg

    def File_Save(self,e): #保存文件
        if self.text.IsEmpty()==False: #判断文本是否为空
            file=open(self.dlg_save_as,'a')
            file.write(self.text.GetValue()) #获取文本所有内容
            file.close() #关闭文件

    def File_Save_as(self,e): #另存为文件 如同打开文件一样的骚操作
        self.dlg_save_as = wx.FileDialog(None, "我没有装逼 相信我 我是真的牛逼.jpg",style = wx.FD_SAVE)
        if self.dlg_save_as.ShowModal() == wx.ID_OK:
            file_save_as=open(self.dlg_save_as.GetPath()+u".txt", 'w') 
            file_save_as.write(self.text.GetValue()) 
            file_save_as.close()
        self.dlg_save_as.Destroy() #销毁dlg

    def File_Quit(self,e): #退出
        self.Close()

############################## --------- 以下是其他的所有操作 --------- #######################################################
    def Help(self,e):
        dlg_tip = wx.MessageDialog(None, u"需要安装wxpython\nwindows下直接python -m pip install wxpython 即可安装\npy2版本只能在里面写英文 中文会出现编码错误 \npy3版本不会出现任何问题\nQQ:2823659786 丑话说在前头 如果你打扰我学习 我就和你一起玩",
                                         u"我没有装逼 相信我 我是真的牛逼.jpg", wx.OK|wx.CANCEL|wx.ICON_INFORMATION) #对话框
        if dlg_tip.ShowModal() == wx.ID_OK:
            pass

app=wx.App(False)
frame=myframe(None,"我没有装逼 相信我 我是真的牛逼.jpg")
frame.Menu_bar()
frame.Show(True)

app.MainLoop()
